package com.liuguoqing.dependencyinversion.after;

import com.liuguoqing.dependencyinversion.after.impl.IntelCpu;
import com.liuguoqing.dependencyinversion.after.impl.KingstonMemory;
import com.liuguoqing.dependencyinversion.after.impl.XiJieHardDisk;

/**
 * 依赖倒转原则:
 *     高层模块不应该依赖低层模块，两者都应该依赖其抽象；抽象不应该依赖细节，细节应该依赖抽象。
 * 简单的说就是要求对抽象进行编程，不要对实现进行编程，这样就降低了客户与实现模块间的耦合。
 *
 * @Author : liugq
 * @Date : 2022/5/12 19:48
 * @See : 参考类
 * @Since： JDK1.8
 * @Version : 1.0
 */
public class ComputerDemo {
    public static void main(String[] args) {
        //创建计算机
        Computer computer = new Computer();
        //组装计算机
        computer.setCpu(new IntelCpu());
        computer.setHardDisk(new XiJieHardDisk());
        computer.setMemory(new KingstonMemory());
        //运行
        computer.run();
    }
}
